home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2008 February / PCWFEB08.iso / Software / Freeware / Miro 1.0 / Miro_Installer.exe / xulrunner / python / dl_daemon / bittornadoinit.py < prev    next >
Encoding:
Python Source  |  2007-11-12  |  1.4 KB  |  67 lines

  1. product_name = 'BitTornado'
  2.  
  3. version = "T-0.3.7 (BitTornado)"
  4.  
  5. version_short = version.split(' ')[0]
  6.  
  7. report_email = version_short+"@degreez.net"
  8.  
  9. from types import StringType
  10. from sha import sha
  11. from time import time, clock
  12. try:
  13.     from os import getpid
  14. except ImportError:
  15.     def getpid():
  16.         return 1
  17.  
  18. mapbase64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-'
  19.  
  20. __root__ = [None]
  21.  
  22. def resetPeerIDs():
  23.     try:
  24.         f = open('/dev/urandom','rb')
  25.         x = f.read(20)
  26.         f.close()
  27.     except:
  28.         x = ''
  29.  
  30.     l1 = 0
  31.     t = clock()
  32.     while t == clock():
  33.         l1 += 1
  34.     l2 = 0
  35.     t = long(time()*100)
  36.     while t == long(time()*100):
  37.         l2 += 1
  38.     l3 = 0
  39.     if l2 < 1000:
  40.         t = long(time()*10)
  41.         while t == long(clock()*10):
  42.             l3 += 1
  43.     x += ( repr(time()) + '/' + str(time()) + '/'
  44.            + str(l1) + '/' + str(l2) + '/' + str(l3) + '/'
  45.            + str(getpid()) )
  46.         
  47.     root = ''
  48.     for i in sha(x).digest()[-11:]:
  49.         root += mapbase64[ord(i) & 0x3F]
  50.     __root__[0] = root
  51.         
  52. resetPeerIDs()
  53.  
  54. def createPeerID(ins = '---'):
  55.     assert type(ins) is StringType
  56.     assert len(ins) == 3
  57.     myid = version_short[0]
  58.     for subver in version_short[2:].split('.'):
  59.         try:
  60.             subver = int(subver)
  61.         except:
  62.             subver = 0
  63.         myid += mapbase64[subver]
  64.     myid += ('-' * (6-len(myid)))
  65.     myid += ins + __root__[0]
  66.  
  67.     return myid